package notes.java.sjms23.t16_proxy.dynamicproxy;

import java.lang.reflect.Proxy;

// 代理模式
// 代理类
public class SalesProxyFactory {

	// 维护一个目标对象
	private Object target;
	
	public SalesProxyFactory(Object target) {
		this.target = target;
	}
	
	// 给目标对象生成代理对象
	public Object getProxyObject() {
		return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), (proxy, method, args) -> {
			System.out.println("代理类开始办理！");
			Object obj = method.invoke(target, args);
			System.out.println("代理类办理到成功！");
			return obj;
		});
	}
	
}
